// 最简单的网络程序之服务端
#include "fmacros.h"

#include <stdio.h>
#include <netdb.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/epoll.h>
#include <stdbool.h>

#include "anet.h"
#include "server.h"

struct redisServer server;

int listenToPort(int port) {
    char err[256] = { '\0' };
    server.ipfd[0] = anetTcpServer(err, port, "127.0.0.1", 512);
    if (server.ipfd[0] == ANET_ERR)
        printf("%s\n", err);
}

void initServer(void) {
    server.ipfd = malloc(sizeof(int));
    listenToPort(2345);
    
    server.el = aeCreateEventLoop(10000);
    if (server.el == NULL) {
        // TODO: Log error info.
        exit(1);
    }

    if (aeCreateFileEvent(server.el, server.ipfd[0], AE_READABLE,
        acceptTcpHandler, NULL) == AE_ERR) {
        // TODO: Log error info.

    }
}

int main()
{
    printf("-----server starting-----\n");
    initServer();
    aeMain(server.el);

    return 0;
}